package com.j2eefast.bussiness.contract.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.j2eefast.bussiness.contract.entity.ContractEntity;
import org.apache.ibatis.annotations.Param;

import java.math.BigInteger;
import java.util.List;

/**
 * <p></p>
 *
 * @author: guoshenghui
 * @date: 2021-05-30 23:47
 * @web: http://www.letukeji.cn
 * @version: 1.0.1
 */
public interface ContractMapper extends BaseMapper<ContractEntity> {


    Page<ContractEntity> contractList(IPage<?> params,
                                      @Param("title") String title,
                                      @Param("title2") String title2,
                                      @Param("contractSn") String contractSn,
                                      @Param("contractSn2") String contractSn2,
                                      @Param("saleman") String saleman,
                                      @Param("company") String company,
                                      @Param("beginTime") String beginTime,
                                      @Param("payType") String payType,
                                      @Param("type") String type,
                                      @Param("status") String status,
                                      @Param("endTime") String endTime);

    public List<ContractEntity> findContract(IPage<?> params,
                                             @Param("title") String title,
                                             @Param("title2") String title2,
                                             @Param("contractSn") String contractSn,
                                             @Param("contractSn2") String contractSn2,
                                             @Param("saleman") String saleman,
                                             @Param("company") String company,
                                             @Param("beginTime") String beginTime,
                                             @Param("payType") String payType,
                                             @Param("type") String type,
                                             @Param("status") String status,
                                             @Param("endTime") String endTime);


    Page<ContractEntity> contractList2(IPage<?> params,
                                       @Param("title") String title,
                                       @Param("contractSn") String contractSn,
                                       @Param("payType") String payType,
                                       @Param("type") String type,
                                       @Param("status") String status,
                                       @Param("saleman") String saleman,
                                       @Param("title2") String title2,
                                       @Param("contractSn2") String contractSn2,
                                       @Param("company") String company,
                                       @Param("beginTime") String beginTime,
                                       @Param("endTime") String endTime,
                                       @Param("userId") Integer userId);

    public List<ContractEntity> findMyContract(IPage<?> params, @Param("title") String title,
                                               @Param("contractSn") String contractSn,
                                               @Param("payType") String payType,
                                               @Param("type") String type,
                                               @Param("status") String status,
                                               @Param("saleman") String saleman,
                                               @Param("userId") Integer userId);


    Page<ContractEntity> contractList3(IPage<?> params,
                                      @Param("title") String title,
                                      @Param("title2") String title2,
                                      @Param("contractSn") String contractSn,
                                      @Param("contractSn2") String contractSn2,
                                      @Param("saleman") String saleman,
                                      @Param("company") String company,
                                      @Param("beginTime") String beginTime,
                                      @Param("type") String type,
                                      @Param("endTime") String endTime);

    List<ContractEntity> findVoidContract(IPage<?> params, @Param("title") String title,
                                       @Param("contractSn") String contractSn,
                                       @Param("type") String type,
                                       @Param("saleman") String saleman);



//    Page<ContractEntity> contractList4(IPage<?> params, @Param("title") String title,
//                                       @Param("contractSn") String contractSn,
//                                       @Param("payType") String payType,
//                                       @Param("status") String status,
//                                       @Param("saleman") String saleman);
    Page<ContractEntity> contractList4(IPage<?> params,
                                       @Param("title") String title,
                                       @Param("title2") String title2,
                                       @Param("contractSn") String contractSn,
                                       @Param("contractSn2") String contractSn2,
                                       @Param("saleman") String saleman,
                                       @Param("company") String company,
                                       @Param("beginTime") String beginTime,
                                       @Param("type") String type,
                                       @Param("payType") String payType,
                                       @Param("endTime") String endTime);

    List<ContractEntity> findRiskContract(IPage<?> params, @Param("title") String title,
                                          @Param("contractSn") String contractSn,
                                          @Param("payType") String payType,
                                          @Param("status") String status,
                                          @Param("saleman") String saleman);


    boolean save(ContractEntity contractEntity);


    //删除合同信息
    public boolean deleteContract(@Param("ids") Long[] ids);


    public boolean doDelete(@Param("id") Long id);

    public ContractEntity getContractById(@Param("id") Long id);

    public boolean updateByIds(ContractEntity contractEntity);

    public boolean doCancel(@Param("id") Long id);


}
